package com.thb.pay.web.vo;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @类名称 CreateOrderVo
 * @类描述 <pre>创建支付订单-支付参数</pre>
 * @作者 lucky
 * @创建时间 2019/10/16
 * @版本 v1.01
 */
@Data
public class CreateOrderVo implements Serializable {
    // 商户ID
    @NotNull(message = "mchId.not.null")
    private Long mchId;
    // 应用ID
    @NotNull(message = "appId.not.null")
    private Long appId;
    // 支付产品ID
    @NotNull(message = "productId.not.null")
    private Long productId;

    // 支付通道子账户ID,非必填[]
    private Long channelAccountId;
    // 商户订单号
    @NotBlank(message = "mchOrderNo.not.null")
    private String mchOrderNo;
    // 支付金额（单位分）
    @NotBlank(message = "money.not.null")
    private String money;
    // 币种
    @NotBlank(message = "currency.not.null")
    private String currency;

    // 客户端IP
    @NotBlank(message = "clientIp.not.null")
    private String clientIp;
    // 设备
    private String device;

    // 特定渠道发起时额外参数[eg: 微信公众号APPID、账户余额支付 userId]
    private String extra;
    // 扩展参数1
    private String param1;
    // 扩展参数2
    private String param2;
    // 支付结果同步请求url
    @NotBlank(message = "returnUrl.not.null")
    private String returnUrl;
    // 支付结果回调URL
    @NotBlank(message = "notifyUrl.not.null")
    private String notifyUrl;
    // 签名
    @NotBlank(message = "sign.not.null")
    private String sign;
    // 商品主题
    @NotBlank(message = "subject.not.null")
    private String subject;
    // 商品描述信息
    @NotBlank(message = "body.not.null")
    private String body;
}
